<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div></div>
</body>
<script>
    // console.log(localStorage.getItem("userName"));// null
    // console.log(localStorage.userName);// undefined
    // * 对象原型链的终点
    // function Box(){
    //
    // }
    // const obj = new Box();
    // console.log(obj.__proto__ === Box.prototype);// true
    // console.log(Box.prototype.__proto__ === Object.prototype);// true
    // console.log(Object.prototype.__proto__);// null
    // * 获取不到DOM元素
    // console.log(document.querySelector("p"));// null;
    // const p = document.querySelector("p");
    // if(p){
    //     console.log(p.innerHTML);
    // }


    {
        // Null的使用场景：
        // * 作为函数的参数，当你不想传，或者是不需要传参数时，可以使用null.
        // function fn(a,b){
        //
        // }
        // fn(null,1);

        // * 赋值
        // var a = null;// 一般用于初始值
        // var b;
        //
        // const a = undefined;
        // const b = null;
    }


    {
        // 引用类型在赋值，比较，传递参数时参照的都是引用地址（栈-》数据值）
        const obj = {}// 栈   00001----> 00xxxx      堆  00xxxx---> {}
        const obj2 = obj;// 栈   00001----> 00xxxx
        obj2.userName = "zhangsan";
        console.log(obj.userName);
    }

</script>
</html>